%e 5000
%p 12000
%S Wortanfang ImWort
%{
%}
Vokal_kurz  a|o|u|O|U|E|I|Y|e|@|i|9|y|Y
Vokal_lang a:|E:|e:|i:|2:|y:|o:|u:|OY|aI|aU
Konsonant b|p|k|x|d|t|s|R|l|n|m|h|f|g|j|v|N|z|S
Wortanfangsonset""|f|b|v|h|R|z|m|ts|l|k|g|t|n|d|St|S|p|tR|Sp|pR|Sl|Sv|kR|bR|kl|gR|fR|bl|fl|StR|Sm|SpR|SR|dR|gl|j|tsv|kn|Sn|kv|pl|pf|pfl|sk|ps|Spl|x
Satzzeichen \.|\!|\?|\,|\;|-|\(|\)|\*|[ ]:
WhiteSpace [ \t\n\r]
Vokal {Vokal_lang}|{Vokal_kurz}
Trennzeichen {Satzzeichen}|{WhiteSpace}
beliebig {Konsonant}|{Vokal}|{Trennzeichen}
Silbenanfang {Wortanfangsonset}/{Vokal}
Phonem {Vokal}|{Konsonant}
%%

					int Klammer = 0;
					int Silbe = 0; 

\<[^>]*\>				{
					 if (Klammer == 0)	
					   {ECHO;}
					 else
					   {printf("]");
					    ECHO;
					    Klammer = 0;
					   }
					 BEGIN Wortanfang;
					}			/* <..> */


\[[^\]\[]*(\[[^\]\[]*\][^\]\[]*)*\]	{ECHO;
					}			/* [...[..]...] */

\[{Konsonant}*\]{Konsonant}*{Vokal}	ECHO;

<Wortanfang>{Konsonant}*{Vokal} 	{
					   printf("[");
					   Klammer = 1;
					   ECHO;
					   BEGIN 0;
					}
{Wortanfangsonset}{Vokal}		{if (Klammer == 0)
					   {printf("[");
					    Klammer = 1;
					   }
					 else
					   {printf("][");
					   }
					ECHO;
					}
{Trennzeichen}+ 			{
					 if (Klammer == 0)	
					   {ECHO;}
					 else
					   {printf("]");
					    ECHO;
					    Klammer = 0;
					   }
					 BEGIN Wortanfang;
					}
%%
main(argc, argv)
int argc;
char **argv;
{
 int i;

  ++argv; --argc; /* skip over program name */

  if(argc>0){
    for(i=0; i<argc; i++){
      yyin = fopen(argv[i],"r");
      if (yyin==NULL)
        fprintf(stderr,"could not open %s --- skipped.\n",argv[i]);
      else {
	BEGIN Wortanfang;
        yylex();
      }
    }
  } else {
    yyin=stdin;
    BEGIN Wortanfang;
    yylex();
  }     
}

 


